#include <iostream>
using namespace std;

int n,pre[50005],in[50005];
struct Node{
    int data;
    struct Node *l,*r;
};

Node* create(int l1,int r1,int l2,int r2){
    if(l1>r1)    return NULL;
    Node *root = new Node;
    root->data = pre[l1];
    int index = l2;
    while(in[index]!=pre[l1])    index++;
    root->l = create(l1+1,l1+index-l2,l2,index-1);
    root->r = create(l1+index-l2+1,r1,index+1,r2);
    return root;
}

void postOrder(Node *root){
    if(!root)    return;
    postOrder(root->l);
    postOrder(root->r);
    cout<<root->data<<"\n";
    exit(0);
}

signed main()
{
    cin>>n;
    for(int i=0;i<n;i++)    cin>>pre[i];
    for(int i=0;i<n;i++)    cin>>in[i];
    Node *root = create(0,n-1,0,n-1);
    postOrder(root);
    return 0;
}
